﻿/*
创建人：zhangrj
日期：2022-11-24
描述：外委转出页面js
*/
var page = {
    url: getRootPath() + "/Ashx/ContainerCommissioningHandler.ashx", //后台处理url,
    //分页参数
    pageTotal: 0,
    pageSize: 10,
    pageNumber: 1,
    init: function () {
        page.bind();
    },
    //绑定事件
    bind: function () {
        customizedEasyuiPagination('pp'); //定制化分页
        //列表加载
        $("#gdContainerInfo").datagrid({
            onLoadSuccess: function (data) {
                $('#pp').pagination('refresh', {	// 改变选项，并刷新分页栏信息
                    total: page.pageTotal,
                    pageSize: page.pageSize,
                    pageNumber: page.pageNumber
                });
                customizedEasyuiPagination('pp'); //定制化分页
            },
            columns: [[
                 { field: 'ck', title: '选择', checkbox: true },
                 { field: 'MFGORDERNAME', title: '生产订单', width: 120 },
                 { field: 'PRODUCTBATCH', title: '件号/批次号', width: 180 },
                 { field: 'PRODUCTDESC', title: '零件名称', width: 150 },
                 { field: 'PLANQTY', title: '计划', width: 60 },
                 { field: 'WIPQTY', title: '在制', width: 60 },
                 { field: 'WORKFLOWSTEPNAME', title: '当前工序', width: 160 },
                 { field: 'CONTAINERTYPENAME', title: '批次类型', width: 100 }
                ]],
            onSelect: function (rowIndex, rowData) {
                page.searchDetail(rowData);
            }
        });
        //详细列表加载
        $("#gdContainerDetail").datagrid({
            columns: [[
                 { field: 'ck', title: '选择', checkbox: true },
                 { field: 'CONTAINERNAME', title: '批次', width: 200 },
                 { field: 'QTY', title: '在制数', width: 60 }
                ]],
            onCheck: function (rowIndex, rowData) {
                page.clearPage(false, false, true, true);
                page.bindCommissioning();
            },
            onUncheck: function (rowIndex, rowData) {
                page.clearPage(false, false, true, true);
                page.bindCommissioning();
            },
            onCheckAll: function () {
                page.clearPage(false, false, true, true);
                page.bindCommissioning();
            },
            onUncheckAll: function () {
                page.clearPage(false, false, true, true);
            }
        });
        //外委数据
        $("#gdCommission").datagrid({
            columns: [[
                 { field: 'ck', title: '选择', checkbox: true },
                 { field: 'CONTAINERNAME', title: '批次', width: 200 },
                 { field: 'WORKFLOWSTEPNAME', title: '当前工序', width: 180 },
                 { field: 'OUTDATE', title: '转出日期', width: 100,
                     formatter: function (value, row, index) {
                         if (!isNullOrWhiteSpaceStr(value)) {
                             return dayjs(value).format('YYYY-MM-DD');
                         }
                     }
                 },
                 { field: 'OUTQTY', title: '外委数', width: 60 },
                 { field: 'OUTFULLNAME', title: '转出人', width: 80 },
                 { field: 'CUSTOMERNAME', title: '外委厂家', width: 150 }
                ]]
        });
        //列表分页事件
        $('#pp').pagination({
            onSelectPage: function (pageNumber, pageSize) {
                customizedEasyuiPagination('pp'); //定制化分页
                page.clearPage(false, true, true, true);
                page.pageSize = pageSize; page.pageNumber = pageNumber;
                page.search();
            }
        });
        $(document).ready(function () {
            //绑定分页go按钮
            $('#pageGo').on("click", function () {
                page.clearPage(false, true, true, true);
                var pageNumber = $(this).parents('tr').find('.pagination-num').val();
                page.pageNumber = pageNumber;
                page.search();
            });
            $("#selStatus").combobox({
                onSelect: function (record) {
                    page.clearPage(false, true, true, true);
                    if (record.value === "1") {
                        $("#divBtns").show();
                    }
                    else {
                        $("#divBtns").hide();
                    }
                }
            })
        });
        //查询信息
        $("#btnSearch").on("click", function () {
            page.clearPage(false, true, true, true);
            page.pageNumber = 1;
            page.search();
        });
        //重置查询
        $("#btnReset").on("click", function () {
            page.clearPage(true, true, true, true);
        });
        //转出
        $("#btnOut").on("click", function () {
            page.clearPage(false, false, false, true);
            page.outData();
        });
    },
    //查询主批次
    search: function () {
        var formData = {
            action: "GetContainerListForOut",
            pageSize: page.pageSize,
            pageIndex: page.pageNumber,
            scanContainer: $.trim($("#txtScanContainer").textbox("getValue")),
            scanOrder: $.trim($("#txtScanOrder").textbox("getValue")),
            productName: $.trim($("#txtProductName").textbox("getValue")),
            containerName: $.trim($("#txtContainerName").textbox("getValue")),
            stepName: $.trim($("#txtStepName").textbox("getValue")),
            status: $("#selStatus").combobox("getValue")
        };
        page.post(page.url, formData, true, function (res) {
            if (!res.Result) {
                displayMessage(res.Message, res.Result);
                return;
            }
            page.pageTotal = res.RowCount;
            $("#gdContainerInfo").datagrid('loadData', { total: res.RowCount, rows: res.DBTable });
        });
    },
    //查询批次详细
    searchDetail: function (formData) {
        formData.action = "GetContainerDetailListForOut";
        page.post(page.url, formData, true, function (res) {
            if (!res.Result) {
                displayMessage(res.Message, res.Result);
                return;
            }
            $("#gdContainerDetail").datagrid('loadData', { rows: res.DBTable });
            $("#gdContainerDetail").datagrid('checkAll');
        });
    },
    //绑定外委数据
    bindCommissioning: function () {
        var rows = $("#gdContainerDetail").datagrid("getChecked");
        if (rows.lenght === 0) {
            displayMessage("请选择批次", false);
            return;
        }
        page.post(page.url, { action: "GetContainerCommissionForOut", params: JSON.stringify(rows), status: $("#selStatus").combobox("getValue") }, true, function (res) {
            if (!res.Result) {
                displayMessage(res.Message, res.Result);
                return;
            }
            $("#gdCommission").datagrid('loadData', { rows: res.DBDataSet.dtCommission });
            $("#gdCommission").datagrid('checkAll');
            //            //绑定外委厂家
            //            $("#selCustomer").combobox({
            //                valueField: 'CUSTOMERID',
            //                textField: 'CUSTOMERNAME',
            //                panelHeight: 200,
            //                data: res.DBDataSet.dtCustom, //下拉数据
            //                filter: function (q, row) { //可模糊搜索
            //                    var opts = $(this).combobox('options');
            //                    return row[opts.textField].indexOf(q) > -1;
            //                }
            //            });
        });
    },
    //转出
    outData: function () {
        $('#btnOut').linkbutton('disable'); //禁用按钮
        var container = $("#gdContainerInfo").datagrid("getChecked"); //获取批次
        var rows = $("#gdCommission").datagrid("getChecked"); //获取外委工序
        if (rows.lenght === 0) {
            displayMessage2("请选择外委工序", false, ["btnOut"]);
            return;
        }
        var needCompletedDate = $("#txtNeedCompletedDate").datebox("getValue"); //需要返厂日期
        if (isNullOrWhiteSpaceStr(needCompletedDate)) {
            displayMessage2("请选择返厂日期", false, ["btnOut"]);
            return;
        }
        var formData = {
            action: "SaveCommissionOutData",
            orderName: container[0].MFGORDERNAME,
            params: JSON.stringify(rows),
            needCompletedDate: needCompletedDate,
            outWeight: $("#txtOutWeight").textbox("getValue"), //单件重量
            unitQuanity: $("#txtUnitQuanity").textbox("getValue") //单台数
        }
        page.post(page.url, formData, true, function (res) {
            if (res.Result) {
                page.clearPage(false, true, true, true);
                page.search();
            }
            displayMessage2(res.Message, res.Result, ["btnOut"]);
        });
    },
    //清除页面（查询区域，列表区域，外委区域，是否清空消息）
    clearPage: function (query, list, commission, msg) {
        if (query) {
            $("#txtScanContainer").textbox("setValue", ""); //扫描批次号
            $("#txtScanOrder").textbox("setValue", ""); //扫描订单号
            $("#txtProductName").textbox("setValue", ""); //件号
            $("#txtContainerName").textbox("setValue", ""); //批次号
            $("#txtStepName").textbox("setValue", ""); //工序号
        }
        if (list) {
            clearEasyuiDataGrid("gdContainerInfo"); //清空列表
            clearEasyuiDataGrid("gdContainerDetail"); //清空详细列表
        }
        if (commission) {
            clearEasyuiDataGrid("gdCommission"); //清空外委列表
            $("#txtNeedCompletedDate").datebox("setValue", ""); //需要返厂日期
            $("#txtOutWeight").textbox("setValue",""), //单件重量
            $("#txtUnitQuanity").textbox("setValue","") //单台数
        }
        if (msg) {
            clearMessage();
        }
    },
    //post数据（路径，参数，是否异步，成功返回方法）
    post: function (url, param, async, callback) {
        $.ajax({
            type: "Post",
            url: url,
            data: param,
            cashe: false,
            async: async,
            dataType: "json",
            beforeSend: function () {
                $.messager.progress({ text: '', msg: '处理中...' });
            },
            success: function (data) {
                $.messager.progress('close');
                callback(data);
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                $.messager.progress('close');
                displayMessage(XMLHttpRequest.responseText, false);
                $("body").find(".easyui-linkbutton").each(function () {
                    $(this).linkbutton('enable');
                });
            }
        });
    }
}
page.init();